#! /usr/bin/env python

PACKAGE='lsd_slam_core'
import roslib; roslib.load_manifest(PACKAGE)

#from driver_base.msg import SensorLevels
from dynamic_reconfigure.parameter_generator import *

gen = ParameterGenerator()

gen.add("plotStereoImages", bool_t, 0, "Plot Searched Stereo Lines, and color-coded stereo-results. Nice Visualization of what's going on, however drastically decreases mapping speed.", False)
gen.add("plotTracking", bool_t, 0, "Plot final tracking residual. Nice Visualization of what's going on, however drastically decreases tracking speed.", False)


#debug parameters
gen.add("freeDebugParam1", double_t, 0, "free parameter to be used for rapid prototyping", 1, 0.0, 100)
gen.add("freeDebugParam2", double_t, 0, "free parameter to be used for rapid prototyping", 1, 0.0, 100)
gen.add("freeDebugParam3", double_t, 0, "free parameter to be used for rapid prototyping", 1, 0.0, 100)
gen.add("freeDebugParam4", double_t, 0, "free parameter to be used for rapid prototyping", 1, 0.0, 100)
gen.add("freeDebugParam5", double_t, 0, "free parameter to be used for rapid prototyping", 1, 0.0, 100)


# debug output control
gen.add("plotTrackingIterationInfo", bool_t, 0, "only use if you know what you are doing!", False)

gen.add("printPropagationStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printFillHolesStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printObserveStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printObservePurgeStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printRegularizeStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printLineStereoStatistics", bool_t, 0, "print lots of debug information", False)
gen.add("printLineStereoFails", bool_t, 0, "print lots of debug information", False)


gen.add("printFrameBuildDebugInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printMemoryDebugInfo", bool_t, 0, "print lots of debug information", False)

gen.add("printTrackingIterationInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printThreadingInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printMappingTiming", bool_t, 0, "print lots of debug information", False)
gen.add("printOverallTiming", bool_t, 0, "print lots of debug information", False)

gen.add("printKeyframeSelectionInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printConstraintSearchInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printOptimizationInfo", bool_t, 0, "print lots of debug information", False)
gen.add("printRelocalizationInfo", bool_t, 0, "print lots of debug information", False)

gen.add("continuousPCOutput", bool_t, 0, "Publish Current Keyframe's Pointcloud after each update, to be seen in the viewer. Nice Visualization, however bad for performance and bandwith. ", False)


# result save control
gen.add("saveKeyframes", bool_t, 0, "Save lots of pictures. Only use if you know what you are doing.", False)
gen.add("saveAllTracked", bool_t, 0, "Save lots of pictures. Only use if you know what you are doing.", False)
gen.add("saveLoopClosureImages", bool_t, 0, "Save lots of pictures. Only use if you know what you are doing.", False)
gen.add("saveAllTrackingStages", bool_t, 0, "Save lots of pictures. Only use if you know what you are doing.", False)


exit(gen.generate(PACKAGE, "Config", "LSDDebugParams"))

